#include <REGX52.H>

/**
  * @brief  定时器0初始化   1毫秒@11.0592MHz
  * @param  无
  * @retval 无
  */


void Timer0_Init(void)		
{
	//	AUXR &= 0x7F;		//定时器时钟12T模式   已经为12T模式不需要重新配置
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x66;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
	ET0=1; //定时器使能，给电
	EA=1; //允许中断
	PT0=0; //定时器优先级为低

}

//定时器中断函数模版
/*
void Timer0_Routine() interrupt 1 //中断函数
{
	static unsigned int T0count; //静态函数变量，子函数程序结束后不清零
	TL0 = 0x66;		//设置定时初值
	TH0 = 0xFC;		//设置定时初值	
	T0count++;
	if(T0count>=1000) //一毫秒循环一千次即为一秒
	{
		T0count=0; //先清零

	}
}
*/

//定时器子函数详细解释
//		void Timer0_Init() //配置寄存器的子函数（初始化函数）
//		{	
//		//	TMOD=0x01; //0000（定时器1，该项目不需要使用均置零）
//					   /*0001（0：GATE置零，TR0单独控制定时器的开始
//							   0：C/T为0，控制为定时器模式
//							   01：M1为0，M0为1，控制该定制器为模式1<16位定时器>）*/
//		//这种赋值方法在先配置定时器1后再这样配置会将定时器1配置好的状态刷新
//		//采用以下方法只操作其中的某一位或者某些位，但是不影响其他位，与或式赋值法
//			TMOD=TMOD&0xF0; //把TMOD的低四位清零，高四位保持不变（见笔记）
//			TMOD=TMOD|0x01; //把TMOD最低位置一，高四位保持不变
//			TF0=0; //将中断溢出标志位清零，若其为1则开始产生中断
//			TR0=1; //定时器的运行控制位，令其为1使定时器开始工作
//			TH0=64535/256; //（高八位取整）
//			TL0=64535%256; //（低八位取余）
//			//以上为定时器部分，一下为中断部分
//			ET0=1; //定时器使能，给电
//			EA=1; //允许中断
//			PT0=0; //定时器优先级为低
//		} 
